package DAO;

import java.util.List;

import ClassesBasicas.Laboratorio;
import Excecao.LaboratorioInexistenteException;

public class RepositorioLaboratorio extends RepositorioBasico{
	
	public RepositorioLaboratorio(){
		super();
	}

	public void atualizar(Laboratorio lab) throws LaboratorioInexistenteException{
		abreSessao();
		session.saveOrUpdate(lab);
		fechaSessao();
	}

	public void inserir(Laboratorio lab){
		abreSessao();
		session.save(lab);
		fechaSessao();
	}

	@SuppressWarnings("unchecked")
	public void listar ()
	{
		abreSessao();
		org.hibernate.Query q = session.createQuery("from Laboratorio");
		List<Laboratorio> laboratorios = q.list();
		for(Laboratorio lab: laboratorios)
		{
			System.out.println("Nome: " + lab.getNome());
		}
		fechaSessao();
	}

	public void remover(String cpf) throws LaboratorioInexistenteException 
	{
		abreSessao();
		Laboratorio laboratorio = (Laboratorio) session.get(Laboratorio.class,cpf);
		session.delete(laboratorio);
		fechaSessao();
	}

	public Laboratorio procurar(int cod) throws LaboratorioInexistenteException 
	{
		abreSessao();		
		Laboratorio lab = (Laboratorio) session.get(Laboratorio.class,cod);		
		return lab;
	}

	public boolean existe(int cod){
		boolean existe = true;
		Laboratorio lab = null;
		try {
			lab = procurar(cod);
		} catch (LaboratorioInexistenteException e) {
			e.printStackTrace();
		}
		if (lab==null)
			existe = false;
		return existe;
	}

}
